知识点一：对象内部通信与this关键
	具体this请看知识点二，我们先看问题。	
	案例：假设我们期望用属性a给属性b赋值，以下结果是什么？
		<script>	
			var a = 1;
			var o = {
				a:3,
				b:a
				
			}
			alert(o.b); //1
		</script>	
		说明：因为b:a 这种写法，前面的b是属性，后面的a会被认为是全局变量。
		
	案例二：以下代码也是错误的，属性赋值不能直接用  自己.属性， 如果想把a赋值给b必须借助中间桥梁方法。
		<script>	
			var a = 1;
			var o = {
				a:3,
				b:o.a	//错误 o 此时还不存在
				
			}
			alert(o.b);  
		</script>	
 
		
	案例三：正确的写法
		
		<script>	
			var a = 1;
			var o = {
				a:3,
				b:null,
				getB:function(){
					this.b=this.a;	//此处this就是个符号，具体是说明要等运行时候看谁调用这个getB函数。
				}
				
			}
		 	o.getB() ;  // 当o调用 getB的时候把getB里面的this替换成o，就是运行到这行代码时候才确定this是谁。
		 	alert(o.b)	
		</script>	


知识点二：this特性 
	深刻理解this记住四句话。
	1、常用在函数中 
	2、运行时绑定
	3、谁调用代表谁
	4、如果this没有人明确调用，或不在函数中，默认在浏览器里面就代表window对象。
	
	案例一：不在函数中的this等于window对象
		<script>
			console.log(this);  				//	等同于 console.log(window)
			console.log( this == window ); 		//	结果 true
			var a = 1;
			alert(this.a);						//	结果：1
		</script>

	案例二：函数中的this
		哪个对象调用这个函数，this就代表哪个对象，如果没有对象明确调用this就等于window对象。
		<script>	
			var i = 1;
			function F(){
				alert(this.i);
			}
			var o = {
				i:2,
				F:F
			}
			o.F();	//结果2， F里面this运行这一行时候临时等于o对象
			F();	//结果1， F里面this运行这一行时候又等于window. 
					//这种运行时才确定的东西，也叫运行时绑定。
		</script>


知识点三：this关键字在嵌套函数中
	说明：this不具有继承性，子函数的this和父函数this可能完全不同。
	
	<script>
		var i = 1;
		var o = {
			i:2,
			A:function(){
				alert(this.i);	//结果2，这里this=o
				function B(){
					alert(this.i);	//结果1，这里this=window
				}
				B();
			}
		}
		o.A();	
		//说明：因为A方法被o直接调用，所以里面的this指向o. 而B方法没有明确哪个对象下调用。默认this就代表window
	</script>


知识点四：常见代码用that代表this.
	在dom动画中,经常我们希望某个方法及其下面所有子函数的方法中的this和上级保持一直. 
	如果想实现，就需要提前把this对象保存到一个变量中。然后调用这个变量。
	改进后代码如下：
		<script>
		var i = 1;
		var o = {
			i:2,
			A:function(){
				var that = this
				alert(that.i);	//结果2，这里this=o
				function B(){
					alert(that.i);	//结果2，因为that此时已经是闭包变量
				}
				B();
			}
		}
		o.A();	 
	</script>
	